# _*_ coding:utf-8 _*_
# 开发团队: Mavericks
# 开发人员：Maverick·Ming
# 开发IDE： PyCharm
#   项目名：DoubanFlask
#   文件名：testwordcloud.py
# 开发时间：2021/4/5 16:31


from matplotlib import pyplot as plt  # 负责绘图的模块
import jieba  # 提供分词、识词过滤模块
from wordcloud import WordCloud  # 词云，形成有遮罩效果的图形
from PIL import Image  # 图像处理，如图形虚化、验证码、图片后期处理等
import numpy as np  # 矩阵运算，中文显示需要运算空间
import sqlite3  # 对数据库的字词整合


# 准备词云所需的文字
conn = sqlite3.connect('movie250.db')
cur = conn.cursor()
sql = 'select summarize from movie'
text = ""
data = cur.execute(sql)
for item in data:
    text += item[0]
cur.close()
conn.close()

# jieba库将词拆分出来
cut = jieba.cut(text)
string = ' '.join(cut)  # 分词拼接
print(len(string))  # 计算分词数量
img = Image.open('../static/assets/img/wordcloud/backgroud.png')  # 打开遮罩图片
img_array = np.array(img)  # 将图片转换为数组，进行计算
wc = WordCloud(
    background_color='white',
    mask=img_array,
    font_path='msyh.ttc'
)
wc.generate_from_text(string)

# 绘制图片
fig = plt.figure(1)
plt.imshow(wc)
plt.axis('off')

plt.savefig('static/assets/img/wordcloud/wordcloud.jpg', dpi=300)
plt.show()  # 显示词云生成的图片